package com.hiultra.common.core.domain.entity;

import com.hiultra.common.annotation.Excel;
import com.hiultra.common.core.domain.BaseEntity;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;

import javax.validation.constraints.Positive;
import java.util.ArrayList;
import java.util.List;

/**
 * 智能柜对象 arc_cabinet
 *
 * @author 李爽
 * @date 2023-08-22
 */
public class ArcCabinet extends BaseEntity {
    private static final long serialVersionUID = 1L;

    /**
     * ID
     */
    private Long cabinetId;

    /**
     * 智能柜编码
     */
    @Excel(name = "智能柜编码")
    private String cabinetCode;

    /**
     * 上级编码
     */
    @Excel(name = "上级编码")
    private Long parentId;

    /**
     * 上级编码名称
     */
    @Excel(name = "上级编码名称")
    private String parentName;

    /**
     * 智能柜名称
     */
    @Excel(name = "智能柜名称")
    private String cabinetName;

    /**
     * 库房ID
     */
    @Excel(name = "库房ID")
    private Long storehouseId;

    /**
     * 库房名称
     */
    @Excel(name = "库房名称")
    private String storehouseName;

    /**
     * 描述
     */
    @Excel(name = "描述")
    private String describ;

    /**
     * 层数
     */
    @Positive(message = "层数必须为正整数")
    @Excel(name = "层数")
    private Integer layerNum;

    /**
     * 格数/层
     */
    @Positive(message = "格数/层必须为正整数")
    @Excel(name = "格数/层")
    private Integer gridNum;

    /**
     * 读写器IP
     */
    @Excel(name = "读写器IP")

    private String rwIp;

    /**
     * 读写器端口
     */
    @Excel(name = "读写器端口")
    private String rwPort;

    /**
     * 端口号
     */
    @Excel(name = "端口号")
    private String gridPort;

    /**
     * 类型 0-主柜 1-副柜 2-层
     */
    @Excel(name = "类型 0-主柜 1-副柜 2-层")
    private Integer leve;

    /**
     * 监控摄像头IP
     */
    @Excel(name = "监控摄像头IP")
    private String cameraIp;

    /**
     * 摄像头端口
     */
    @Excel(name = "摄像头端口")
    private String cameraPort;

    /**
     * 摄像头账号
     */
    @Excel(name = "摄像头账号")
    private String cameraLogin;

    /**
     * 监控摄像头密码
     */
    @Excel(name = "监控摄像头密码")
    private String cameraPassword;

    /**
     * 状态
     */
    @Excel(name = "状态")
    private Integer status;

    /**
     * 删除标识
     */
    @Excel(name = "删除标识")
    private Integer delflag = 0;

    /**
     * 排列顺序 0-从左到右依次排列 1-S型
     */
    @Excel(name = "排列顺序 0-从左到右依次排列 1-S型")
    private String orderPort;

    /**
     * 所属主柜
     */
    @Excel(name = "所属主柜")
    private Long zcabinetId;

    /**
     * 子菜单
     */
    private List<ArcCabinet> children = new ArrayList<ArcCabinet>();

    public String getParentName() {
        return parentName;
    }

    public void setParentName(String parentName) {
        this.parentName = parentName;
    }

    public String getStorehouseName() {
        return storehouseName;
    }

    public void setStorehouseName(String storehouseName) {
        this.storehouseName = storehouseName;
    }

    public List<ArcCabinet> getChildren() {
        return children;
    }

    public void setChildren(List<ArcCabinet> children) {
        this.children = children;
    }

    public void setCabinetId(Long cabinetId) {
        this.cabinetId = cabinetId;
    }

    public Long getCabinetId() {
        return cabinetId;
    }

    public void setCabinetCode(String cabinetCode) {
        this.cabinetCode = cabinetCode;
    }

    public String getCabinetCode() {
        return cabinetCode;
    }

    public Long getParentId() {
        return parentId;
    }

    public void setParentId(Long parentId) {
        this.parentId = parentId;
    }

    public void setCabinetName(String cabinetName) {
        this.cabinetName = cabinetName;
    }

    public String getCabinetName() {
        return cabinetName;
    }

    public void setStorehouseId(Long storehouseId) {
        this.storehouseId = storehouseId;
    }

    public Long getStorehouseId() {
        return storehouseId;
    }

    public void setDescrib(String describ) {
        this.describ = describ;
    }

    public String getDescrib() {
        return describ;
    }

    public void setLayerNum(Integer layerNum) {
        this.layerNum = layerNum;
    }

    public Integer getLayerNum() {
        return layerNum;
    }

    public void setGridNum(Integer gridNum) {
        this.gridNum = gridNum;
    }

    public Integer getGridNum() {
        return gridNum;
    }

    public void setRwIp(String rwIp) {
        this.rwIp = rwIp;
    }

    public String getRwIp() {
        return rwIp;
    }

    public void setRwPort(String rwPort) {
        this.rwPort = rwPort;
    }

    public String getRwPort() {
        return rwPort;
    }

    public void setGridPort(String gridPort) {
        this.gridPort = gridPort;
    }

    public String getGridPort() {
        return gridPort;
    }

    public void setLeve(Integer leve) {
        this.leve = leve;
    }

    public Integer getLeve() {
        return leve;
    }

    public void setCameraIp(String cameraIp) {
        this.cameraIp = cameraIp;
    }

    public String getCameraIp() {
        return cameraIp;
    }

    public void setCameraPort(String cameraPort) {
        this.cameraPort = cameraPort;
    }

    public String getCameraPort() {
        return cameraPort;
    }

    public void setCameraLogin(String cameraLogin) {
        this.cameraLogin = cameraLogin;
    }

    public String getCameraLogin() {
        return cameraLogin;
    }

    public void setCameraPassword(String cameraPassword) {
        this.cameraPassword = cameraPassword;
    }

    public String getCameraPassword() {
        return cameraPassword;
    }

    public void setStatus(Integer status) {
        this.status = status;
    }

    public Integer getStatus() {
        return status;
    }

    public void setDelflag(Integer delflag) {
        this.delflag = delflag;
    }

    public Integer getDelflag() {
        return delflag;
    }

    public void setOrderPort(String orderPort) {
        this.orderPort = orderPort;
    }

    public String getOrderPort() {
        return orderPort;
    }

    public void setZcabinetId(Long zcabinetId) {
        this.zcabinetId = zcabinetId;
    }

    public Long getZcabinetId() {
        return zcabinetId;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this, ToStringStyle.MULTI_LINE_STYLE)
                .append("cabinetId", getCabinetId())
                .append("cabinetCode", getCabinetCode())
                .append("parentId", getParentId())
                .append("cabinetName", getCabinetName())
                .append("storehouseId", getStorehouseId())
                .append("describ", getDescrib())
                .append("layerNum", getLayerNum())
                .append("gridNum", getGridNum())
                .append("rwIp", getRwIp())
                .append("rwPort", getRwPort())
                .append("gridPort", getGridPort())
                .append("leve", getLeve())
                .append("cameraIp", getCameraIp())
                .append("cameraPort", getCameraPort())
                .append("cameraLogin", getCameraLogin())
                .append("cameraPassword", getCameraPassword())
                .append("status", getStatus())
                .append("delflag", getDelflag())
                .append("orderPort", getOrderPort())
                .append("zcabinetId", getZcabinetId())
                .append("createBy", getCreateBy())
                .append("createTime", getCreateTime())
                .append("updateBy", getUpdateBy())
                .append("updateTime", getUpdateTime())
                .append("remark", getRemark())
                .toString();
    }
}
